package com.quarters.mapper;

import com.quarters.bean.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.quarters.bean.UserInfo;
import com.quarters.bean.ztree.ZtreeBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 个人信息 Mapper 接口
 * </p>
 *
 * @author 冯政尚
 * @since 2019-09-02
 */
public interface UserMapper extends BaseMapper<User> {


    /**
     * @param userId
     * @return 解绑
     */
    Integer untying(@Param("userId")Long userId);

    /**
     * @param map
     * @return 后台查询
     */
    List<User> selectMyPage(@Param("param") Map map);
    Integer  countMyPage (@Param("param")Map map);

    List<User> selectMyPageAll(@Param("param") Map map);
    Integer  countMyPageAll (@Param("param")Map map);

    /**
     * @param userId
     * @return 发送文章查询当前用户下小区的用户
     */
    List<ZtreeBean> articleUser(@Param("userId") Long userId);

    /**
     * @return 如果是超级管理员查询所有用户
     */
    List<ZtreeBean> articleUserAll( );

    //根据id查询用户
    User selectByIdUser(@Param("userId")Long userId);




    /**
     * @param userId
     * @param quartersId
     * @param detailedFloor
     * @return 修改用户的小区楼层
     */
    Integer updateByIdUser(@Param("userId")Long userId,@Param("quartersId")Long quartersId,@Param("detailedFloor")String detailedFloor,@Param("time")Long time);


    /**
     * @param userId
     * @return 根据当前用户查询当前用户所管理的小区的所有用户
     */
    List<User> selectUser(@Param("userId")Long userId);

    /**
     * @return 如果是管理员就查询所有用户
     */
    List<User> selectUserAll();


    /**
     * @param userId
     * @return 根据当前用户查找区域管理员
     */
    User selectRegion(@Param("userId")Long userId);


    //文章发送失败给管理员发送模板消息
    User selectOpenId(@Param("userId")Long userId);

    //查询支付订单的管理员
    User selectPayOpenId(@Param("orderId")Long orderId);


    //查询当前用户是否绑定小区
    User binding(@Param("userId")Long userId);

}
